
using Ausy.Silverlight.Survey.QuestionModule.Model;
using System;
namespace Ausy.Silverlight.Survey.QuestionModule.ViewParts
{
    /// <summary>
    /// Cette interface définit le Vue Model pour le Question
    /// </summary>
    public interface IQuestionViewModel
    {
        #region Text Property
        /// <summary>
        /// Property text
        /// </summary>
        string Text { get; set; }

        #endregion

        #region SelectedQuestion Property
        /// <summary>
        /// Property selectedQuestion
        /// </summary>
        bool SelectedQuestion
        {
            get;
            set;
        }

        #endregion

        #region QuestionValidate

        /// <summary>
        /// Evènement lorsque la question est validée
        /// </summary>
        event EventHandler<QuestionEventArgs> QuestionValidate; 

        #endregion

        #region Response Property

        /// <summary>
        /// Résponse à la question
        /// </summary>
        UserQuestionnaireResponse Response { get; }

        #endregion

        #region View Property

        /// <summary>
        /// Vue Question à utliser 
        /// </summary>
        IQuestionView View { get; }

        #endregion

        #region Load Method

        /// <summary>
        /// Cette méthode permet d'afficher une question
        /// </summary>
        /// <param name="question">question a afficher</param>
        void Load(Question question);

        #endregion
    }
}
